home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Apple Sales & Marketi…urce Library 1999 August
/
Resource Library August 99.toast
/
mac
/
AppleShare IP 6.2 (NFR)
/
AppleShare IP 6.2 Install
/
Unsupported Tools
/
PGPuam plugin kit
/
!!! READ ME !!!
next >
Wrap
Text File
|
1999-03-10
|
13KB
|
310 lines
PGPuam - Public Key Authentication for AppleShare IP.
By Vinnie Moscaritolo
Last Revision 1.0.1 3/10/99
THIS IS SAMPLE CODE!
--------------------
Before you go any further, I would suggest that you check my
website at <http://www.vmeng.com/vinnie/Papers/pgpuam.html>
to see if there is a newer copy of both the code and/or
documentation. This is the first public release, It is pretty
stable for everyday use, but I am aware of a few bugs. I
have listed them below..
This sample is a good example of what can be done with the
AppleShare IP UAM sdk and also provides some useful authenication
on the Macintosh.
WHAT IS IT?
------------
PGPuam is an enhancement to the standard AppleShare IP User Access
Methods (UAM) that enables a user to perform two-way strongly
authenticated logins to an AppleShare IP server from a Mac OS client.
The PGPuam system consists of two major components, a client and a
server plug-in.
WHY DO I WANT IT?
-----------------
Tired of remembering and keeping track of Appleshare passwords?
Did you know that same digital signature technology that is used to
guarantee the identity of e-mail can also be used to strongly authenticate
users of network services. This provide three significant advantages over
password based user authentication systems:
- Since the same key and passphrase used to sign e-mail messages is
also used for server access, (you only need to remember one passphrase)
- Strong user authentication is provided by cryptographic digital
signatures.
- Since the user maintains the only secret material in the system,
compromising a server's user database results in limited damage.
HOW DOES IT WORK?
-----------------
Authentication with Cryptographic Signatures
E-mail communication on the Internet faces a security challenge similar to
network user authentication. Since e-mail packets are broadcast through
public networks, these messages can also be eavesdropped on and
counterfeited by unauthorized individuals. However e-mail vendors have
been able to address this problem by leveraging public key cryptography to
digitally sign and authenticate e-mail messages.
In a public key cryptosystem, each user or principle generates a pair of
mathematically-related cryptographic keys. These keys are created in such
a way that it is computationally infeasible to derive one key from the
other. One of the keys is made publicly available to anyone who wishes to
communicate with that user. The other key is kept private and never
revealed to anyone else. This private key is secured by either placing it
in a hardware token or further encrypting it to a passphrase, or both. The
private key is then used by the principal to digitally sign data. This
digital signature can later be checked with the matching public key to
ensure that the data has not been tampered with and that it originated
from the holder of the private key.
Since the holder of the private key is the only entity who can create a
digital signature that verifies with the corresponding public key, there
is a strong correlation between a user's identity and the ability to sign
with that private key. Thus the public key can function as a principleÕs
identity in cyberspace .
Because they provide such strong testimony to the authenticity of the
sender, public-key cryptographic systems are becoming very popular among
today's Internet e-mail users.
The same digital signature technology that guarantees the identity of the
e-mail sender can be used to strongly authenticate users of network
services, too. By having the user sign a random challenge message from the
server at login, the server can verify the identity of the user with his
public key. The server randomly creates the challenge message to prevent
replay attacks. This process is illustrated in the following scenario :
1. The user initiates network service access.
2. The server looks up the user's public key in its authentication
database. The server then generates a random challenge string and sends
the challenge to the client.
3. The client digitally signs the challenge string and returns the
cryptographic signature to the server. The client also sends a counter
challenge string which is used to verify the server's authenticity.
4. The server then checks the client's signature and, if successful,
grants access. It also signs and returns the client's counter-challenge.
This process provides several significant advantages over password based
user authentication systems:
- Since the same key and passphrase used to sign e-mail messages is also
used for server access, the user need only remember one passphrase. This
is done without the risks associated with passphrase caches.
- Strong user authentication is provided by cryptographic digital
signatures.
- Since the user maintains the only secret material in the system,
compromising a server's user database results in limited damage.
While similar systems have been proposed by a number of researchers they
lacked the availability of a widely-accepted key infrastructure. Since PGP
already has a large key infrastructure, I have chosen to exploit this by
building a challenge-response system using the PGP software developers kit
(PGPsdk), which is avilable from the pgp website .
WHAT DOES IT RUN ON?
-------------------
I have tested the client on MacOS 8.5 PPC only. I have no reason to belive
that it would not run on 8.1 PPC . It requires AppleShare Client 3.8.1 (or
newer, it comes with 8.5). The server works with AppleShare 6.1. Most
important, you must have a copy of PGP 6.0 or better on the client, manager
and servers machines.
ABOUT THE CODE.
-------------------
PGPuam is a Metrowerks Codewarrior PRO 4 project. The code
is considered sample code for now. It uses a bunch of
technologies such as: CFM, Appearance Manager, Collections
Manager, PGPsdk etc. So there is a lot to learn by examining
the code itself. You can find the sources on the Apple Developer CDs.
EXPORT ISSUES
--------------
PGPuam does not contain any crypto code. It is purely for
authentication use only. (In fact all Signatures and Random
number generation is done via the PGPsdk) Feel free to enjoy
it.
HOW DO I SET IT UP?
-------------------
Server:
0) Install PGP 6.0 (or better) on the server (or at least drop the approp PGP
libraries into the Extension folder)
1) Drop the "PGPuam Server" file in the "AppleShare IP UAM" folder found in
the server's extension folder.
2) - Unfortunately you must also Modify the SIZE resource of the "AppleShare
IP Registry" file in server's extension folder to allocate a bit
more memory then the stock configuration. I suggest adding at least
1K more space. Yes this is a bug in the ASIP design and yes they are
working on a fix for the future, but for now you can correct this using
your favorite resource editor.
3) Reboot the server.
Manager:
0) Install PGP 6.0 (or better) and make sure it runs, you'll need to at
least setup the default keychains.
1) Launch the PGPuam Manager program
2) Select a server in the "Connect.." Dialog (This must be done on a
machine remote to the server for now, must also have appletalk
connectivity) and enter the Admin Name/password.
3) Select "Server Settings" from the Server menu. and Press "Generate" to
create a server key. (it might ask you to move the mouse around) then
save the key..
4) Drag out a copy of the new public key to the desktop and save this, you
will need this for users later.
5) Close the window.
6) Go to the User List window and open a test user up, drag in a copy of
that users's public Key (From PGPkeys or whatever) and save. Do this
for each user you want to test with.
Clients:
0) Install PGP 6.0 (or better) and make sure it runs, you'll need to at least setup
the default keychains. Each client will need their own keys, it can
(should be) be an existing key.
1) If you are not already running "AppleShare" client 3.8.1 (comes with
macOS 8.5) then update now. You should be able to find a copy at
the Appleshare IP website at <http://www.apple.com/appleshareip/> .
2) Create a folder in the Extensions folder titled "AppleShare Folder"
and Drop the "PGPuam" into that folder and reboot
3) Get a copy of the server PUBLIC key from sysAdmin and drop it into
PGPkeys.
4) open the server in the Chooser and select the "PGP Challenge/REsponse"
logon method
(the PUPuam dialog should pop up, feel free to hunt around)
5) Login with approp user name, you will be asked by PGP to enter the appop
passphrase for the key that the sysadmin installed under your username.
6) you'r In.
KNOWN BUGS and THINGS TO DO
---------------------------
PGPuam Client
-------------
- Balloon Help does not work. Balloon Help is particularly important when
the interface uses unlabeled buttons.
--------------------------------------------
- The picture in the About panel still does not display. (Actually, it
displays briefly, then disapears. Is there a button being drawn over the
picture?)
--------------------------------------------
- The Apple Help button isn't hooked up yet.
=========================================================================
PGPuam Server
-------------
- CRASH on Shutdown, propb due to OT being shutdown before ASIP plugins.
this is an ASIP bug.. and we are in the process of tracking it down.
=========================================================================
PGPuam Admin Problems
---------------------
- The "Select Server" window is not centered. This is currently deffered
due to lazy programmer. Actually I am trying to replace the StandardNBP call
with something better. When a NSL or such thing becomes available, I will
update it.
--------------------------------------------
- The Password field of the Connect to AppleShare window probably should
not indicate the password length with bullets. ;-) THis isn't a bug,
what it indicated is that the admin password is used in a remote authication
scheme and is sent over the network, albeit using two-way randnum. It's
not as secure as the PGPuam method.
--------------------------------------------
- The Name and Kind labels in the User List window appear with a gray
background when the rest of the window has a white background. (I run Mac
OS 8.1 with the Black & White appearance variation.) This may be a bug in
Appearance 1.0.1 or PowerPlant. (Send me your latest sources and I will
investigate further.) Btw, the "AppleShare IP Web & File Server"
application has the same problem in the Server Info panel.
I belive this is a bug in the appearance MGR.
--------------------------------------------
- Select of list items in the User List window darkens the item's icons,
but it does not color the text of the item, when used in Black and White mode.
--------------------------------------------
- Opening a second User window displays the window to the right of the
first as if the windows were being tiled. Opening a third displays the
window on top of the second. This probably is a PowerPlant bug.
--------------------------------------------
- If the local AppleShare Admin deletes a user when the PGPuam Admin has
the user open in a window, it will not be properly be reflected. However
the user will disappear from the User list window. I have to think about
what the proper way to alert the admin user about the changes are..
=========================================================================
STAY TUNED.
I plan to actively update this code in the near future. So
check the Website every now and them for the latest update.
feel free to email any questions and/or suggestions..
Vinnie Moscaritolo
World Wide DTS, Apple Computer.
- ------------------
http://www.vmeng.com/vinnie/
DSS/DH: 3F903472C3AF622D5D918D9BD8B100090B3EF042